In dot matrix printers, each character is comprised of a matrix of dots and blanks which together define the character. On close examination, the dots are arranged in a matrix of positions that are typically arranged in horizontal rows and vertical columns that are adjacent, parallel, and evenly spaced. The intersections of the rows and columns determine the locations of the dots and blanks, and the dots may overlap, depending upon the spacing between matrix intersections and dot diameter. Each dot or blank is represented in the apparatus by a binary data element with a binary 1 typically representing a dot and a binary 0 representing a blank. Data representing at least one entire character set is usually stored in the apparatus, and it includes numerals, upper and lower case letters, punctuation, and other commonly used symbols.
Depending upon the type of apparatus displaying the character, the quality of the character and the speed of printing may usually be selected as desired, within the capabilities of the display and associated data processing apparatus or computer. Each type of display, such as a dot matrix printer, electrostatic printer, ink jet printer, cathode-ray tube, etc., has unique physical constraints imposed by its mechanical or electrical capabilities. This usually affects the dotto-dot spacing between locations in the matrix, as well as the speed at which the dots may be displayed. The associated data processing apparatus typically stores the sets of binary data elements defining the shape of the respective characters, performs any necessary logical operations on the stored data to provide the desired density or thickness of the displayed character, and governs the physical operations of the printer (or display).
It is desirable for a dot matrix printer to print characters in more than one density and thickness. It is also desirable to print at a high speed to provide a high volume output, with a lower quality printed character being acceptable, and to alternatively print a higher quality character, with a lower print speed being acceptable. Printing at a high speed with a lower quality printed character is commonly performed when a large volume of output is required, as in a data processing environment. A high speed of printing may be achieved by printing only a comparatively small number of the binary character data elements for each character spaced by about one dot width, resulting in the printing of characters of a lower print quality. On the other hand, high quality printed characters are preferred in a word processing environment or office environment, as well as the ability to selectively enlarge or enhance all or some of the characters. A higher quality character may be achieved by printing a relatively high number of the binary data elements for each character and spacing them by less than one dot width so that they overlap. Lower print speed and volume of output may result, but this is likely to meet the output demands of such an environment.
To print characters of different print qualities, it is necessary to provide data for each type of character quality. It is known to store a single set of binary data elements representing each character in a single print quality, and to duplicate by rote this basic data to obtain additional binary data elements for printing a character supposedly having a higher quality. This resulted in "stair-step" diagonals and seriously degraded the quality of the character and its legibility. These poor quality characters necessitated some type of smoothing operation if the stair-stepping effect was to be reduced, but these methods are usually very complex and expensive. Related problems include a destruction of the symmetry of both individual characters and groupings of characters to make words or phrases. For instance, the spacing between the linear components of a character may be degraded, and the base line for a character set may be lost, or widened to an unacceptable degree.
More specifically, some printers that provided characters of "improved" quality would print overlapping characters by using the same stored data to print the same character a second time one-half dot to the right. A second option was to print the same character a second time one-half dot below the first character. A third option was to combine both of the above methods and print the character still another time to the down and down right, thus printing four overlapping dots for each binary data element representing the stored character. The first option increased the density of the horizontal lines and added thickness to the vertical lines. The second option increased the density of the vertical lines and added thickness to the horizontal lines. The third option increased the density and added thickness to both the horizontal and the vertical lines. However, none of the options uniformly increased the density or thickness of the diagonal lines. Indeed, these options caused unsightly stair-stepping and in most cases aggravated the discontinuity of the diagonal lines. Thus, these options do not provide a satisfactory solution because of distortion, non-uniform increases in density, and the distracting stair-step effect.
An alternative to simply duplicating the stored data to enhance a single character is to store all of the binary data representing the multiplicity of sets of all improved quality characters. However, such increases in the amount of data storage are usually prohibitive in size and cost. And, low cost printers that employ inexpensive and relatively simple data processing components do not include the capabilities to store additional sets of enhanced characters, or process the complex algorithms which have been necessary in the past to enhance a character and smooth it to maintain its legibility.
The thickened, high density dot matrix characters of the present invention are displayed using a combination of the stored binary data elements representing the character and additional binary data elements derived from the stored binary data elements. The combined data defines a matrix of binary data elements, and dots are printed that correspond to the combination of the stored and generated data elements. To increase the density of a character overlapping dots may be selectively printed along the length of a vertical, diagonal, or horizontal linear components of the lines making up the character to make it appear darker or more dense. The lines may also be selectively thickened in a direction generally orthogonal to their linear direction to make them wider. Furthermore, to accommodate a variety of combinations of different print styles, characters may be thickened or have their density changed in all directions, or in one or more of the horizontal, vertical, and diagonal directions, and each may be done independently of the other.
The term diagonal refers to any line that is not either horizontal or vertical. Similarly, while reference is made to horizontal rows and vertical columns as a matter of convenience, the direction or designation of a line of binary data elements may be changed as necessary or desirable to suit a particular application. The invention is applicable to any data supplied, whether it represents characters, graphics, line drawings, geometrical shapes, etc., since the binary data is considered as a collection of lines.
Accordingly, it is an object of the present invention to provide a method and apparatus for displaying dot matrix characters that are selectively enhanced by thickening the character components or making them more dense, or both.
It is a further object of the present invention to provide a method and apparatus for displaying dot matrix characters that minimizes the cost and amount of data storage required to produce a wide variety of characters that have been selectively enhanced.
It is a further object of the present invention to provide a method and apparatus for displaying dot matrix characters of varying density and thickness from a single set of stored binary data elements representing a single character set.
It is a further object of the present invention to provide a method and apparatus for displaying enhanced dot matrix characters where the data for generating the character to be displayed is generated from a series of logical operations performed on a single set of stored character data elements.
It is a further object of the present invention to provide a method and apparatus for displaying dot matrix characters where the character density and thickness may each be individually determined for each character and individually determined for each of the horizontal, vertical, and diagonal components of each character.
It is a further object of the present invention to provide a method and apparatus for displaying dot matrix characters where the character and base line symmetry are preserved and are uniform for all character enhancements.
It is a further object of the present invention to provide a method and apparatus for displaying enhanced dot matrix characters that may be implemented with inexpensive data processing equipment for data handling and printer control and for minimizing the complexity and need for additional processing power and storage capabilities.